<?php
/*
 * Copyright (c) 2017-2025 Tencent. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
namespace TencentCloud\Cwp\V20180228\Models;
use TencentCloud\Common\AbstractModel;

/**
 * DescribeAttackStatistics response structure.
 *
 * @method integer getPendingAttackCount() Obtain Total Number of Attacks
Note: This field may return null, indicating that no valid values can be obtained.
 * @method void setPendingAttackCount(integer $PendingAttackCount) Set Total Number of Attacks
Note: This field may return null, indicating that no valid values can be obtained.
 * @method integer getPendingTryAttackCount() Obtain Total Attack Attempts
Note: This field may return null, indicating that no valid values can be obtained.
 * @method void setPendingTryAttackCount(integer $PendingTryAttackCount) Set Total Attack Attempts
Note: This field may return null, indicating that no valid values can be obtained.
 * @method integer getPendingSuccAttackCount() Obtain Total Number of Successful Attacks
Note: This field may return null, indicating that no valid values can be obtained.
 * @method void setPendingSuccAttackCount(integer $PendingSuccAttackCount) Set Total Number of Successful Attacks
Note: This field may return null, indicating that no valid values can be obtained.
 * @method integer getPendingNewAttackCount() Obtain Number of New Attacks Today
Note: This field may return null, indicating that no valid values can be obtained.
 * @method void setPendingNewAttackCount(integer $PendingNewAttackCount) Set Number of New Attacks Today
Note: This field may return null, indicating that no valid values can be obtained.
 * @method integer getAttackedAssetCount() Obtain Total Number of Assets Under Attack
Note: This field may return null, indicating that no valid values can be obtained.
 * @method void setAttackedAssetCount(integer $AttackedAssetCount) Set Total Number of Assets Under Attack
Note: This field may return null, indicating that no valid values can be obtained.
 * @method integer getNewAttackedAssetCount() Obtain Number of New Attacked Assets Today
Note: This field may return null, indicating that no valid values can be obtained.
 * @method void setNewAttackedAssetCount(integer $NewAttackedAssetCount) Set Number of New Attacked Assets Today
Note: This field may return null, indicating that no valid values can be obtained.
 * @method integer getAttackedPortCount() Obtain Total Number of Attacked Ports
Note: This field may return null, indicating that no valid values can be obtained.
 * @method void setAttackedPortCount(integer $AttackedPortCount) Set Total Number of Attacked Ports
Note: This field may return null, indicating that no valid values can be obtained.
 * @method integer getNewAttackedPortCount() Obtain Number of New Attacked Ports Today
Note: This field may return null, indicating that no valid values can be obtained.
 * @method void setNewAttackedPortCount(integer $NewAttackedPortCount) Set Number of New Attacked Ports Today
Note: This field may return null, indicating that no valid values can be obtained.
 * @method integer getAttackSrcIpCount() Obtain Total Number of Attack Source IPs
Note: This field may return null, indicating that no valid values can be obtained.
 * @method void setAttackSrcIpCount(integer $AttackSrcIpCount) Set Total Number of Attack Source IPs
Note: This field may return null, indicating that no valid values can be obtained.
 * @method integer getNewAttackSrcIpCount() Obtain Number of New Attacking Source IPs Today
Note: This field may return null, indicating that no valid values can be obtained.
 * @method void setNewAttackSrcIpCount(integer $NewAttackSrcIpCount) Set Number of New Attacking Source IPs Today
Note: This field may return null, indicating that no valid values can be obtained.
 * @method string getRequestId() Obtain The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
 * @method void setRequestId(string $RequestId) Set The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
 */
class DescribeAttackStatisticsResponse extends AbstractModel
{
    /**
     * @var integer Total Number of Attacks
Note: This field may return null, indicating that no valid values can be obtained.
     */
    public $PendingAttackCount;

    /**
     * @var integer Total Attack Attempts
Note: This field may return null, indicating that no valid values can be obtained.
     */
    public $PendingTryAttackCount;

    /**
     * @var integer Total Number of Successful Attacks
Note: This field may return null, indicating that no valid values can be obtained.
     */
    public $PendingSuccAttackCount;

    /**
     * @var integer Number of New Attacks Today
Note: This field may return null, indicating that no valid values can be obtained.
     */
    public $PendingNewAttackCount;

    /**
     * @var integer Total Number of Assets Under Attack
Note: This field may return null, indicating that no valid values can be obtained.
     */
    public $AttackedAssetCount;

    /**
     * @var integer Number of New Attacked Assets Today
Note: This field may return null, indicating that no valid values can be obtained.
     */
    public $NewAttackedAssetCount;

    /**
     * @var integer Total Number of Attacked Ports
Note: This field may return null, indicating that no valid values can be obtained.
     */
    public $AttackedPortCount;

    /**
     * @var integer Number of New Attacked Ports Today
Note: This field may return null, indicating that no valid values can be obtained.
     */
    public $NewAttackedPortCount;

    /**
     * @var integer Total Number of Attack Source IPs
Note: This field may return null, indicating that no valid values can be obtained.
     */
    public $AttackSrcIpCount;

    /**
     * @var integer Number of New Attacking Source IPs Today
Note: This field may return null, indicating that no valid values can be obtained.
     */
    public $NewAttackSrcIpCount;

    /**
     * @var string The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
     */
    public $RequestId;

    /**
     * @param integer $PendingAttackCount Total Number of Attacks
Note: This field may return null, indicating that no valid values can be obtained.
     * @param integer $PendingTryAttackCount Total Attack Attempts
Note: This field may return null, indicating that no valid values can be obtained.
     * @param integer $PendingSuccAttackCount Total Number of Successful Attacks
Note: This field may return null, indicating that no valid values can be obtained.
     * @param integer $PendingNewAttackCount Number of New Attacks Today
Note: This field may return null, indicating that no valid values can be obtained.
     * @param integer $AttackedAssetCount Total Number of Assets Under Attack
Note: This field may return null, indicating that no valid values can be obtained.
     * @param integer $NewAttackedAssetCount Number of New Attacked Assets Today
Note: This field may return null, indicating that no valid values can be obtained.
     * @param integer $AttackedPortCount Total Number of Attacked Ports
Note: This field may return null, indicating that no valid values can be obtained.
     * @param integer $NewAttackedPortCount Number of New Attacked Ports Today
Note: This field may return null, indicating that no valid values can be obtained.
     * @param integer $AttackSrcIpCount Total Number of Attack Source IPs
Note: This field may return null, indicating that no valid values can be obtained.
     * @param integer $NewAttackSrcIpCount Number of New Attacking Source IPs Today
Note: This field may return null, indicating that no valid values can be obtained.
     * @param string $RequestId The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
     */
    function __construct()
    {

    }

    /**
     * For internal only. DO NOT USE IT.
     */
    public function deserialize($param)
    {
        if ($param === null) {
            return;
        }
        if (array_key_exists("PendingAttackCount",$param) and $param["PendingAttackCount"] !== null) {
            $this->PendingAttackCount = $param["PendingAttackCount"];
        }

        if (array_key_exists("PendingTryAttackCount",$param) and $param["PendingTryAttackCount"] !== null) {
            $this->PendingTryAttackCount = $param["PendingTryAttackCount"];
        }

        if (array_key_exists("PendingSuccAttackCount",$param) and $param["PendingSuccAttackCount"] !== null) {
            $this->PendingSuccAttackCount = $param["PendingSuccAttackCount"];
        }

        if (array_key_exists("PendingNewAttackCount",$param) and $param["PendingNewAttackCount"] !== null) {
            $this->PendingNewAttackCount = $param["PendingNewAttackCount"];
        }

        if (array_key_exists("AttackedAssetCount",$param) and $param["AttackedAssetCount"] !== null) {
            $this->AttackedAssetCount = $param["AttackedAssetCount"];
        }

        if (array_key_exists("NewAttackedAssetCount",$param) and $param["NewAttackedAssetCount"] !== null) {
            $this->NewAttackedAssetCount = $param["NewAttackedAssetCount"];
        }

        if (array_key_exists("AttackedPortCount",$param) and $param["AttackedPortCount"] !== null) {
            $this->AttackedPortCount = $param["AttackedPortCount"];
        }

        if (array_key_exists("NewAttackedPortCount",$param) and $param["NewAttackedPortCount"] !== null) {
            $this->NewAttackedPortCount = $param["NewAttackedPortCount"];
        }

        if (array_key_exists("AttackSrcIpCount",$param) and $param["AttackSrcIpCount"] !== null) {
            $this->AttackSrcIpCount = $param["AttackSrcIpCount"];
        }

        if (array_key_exists("NewAttackSrcIpCount",$param) and $param["NewAttackSrcIpCount"] !== null) {
            $this->NewAttackSrcIpCount = $param["NewAttackSrcIpCount"];
        }

        if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) {
            $this->RequestId = $param["RequestId"];
        }
    }
}
